package org.puc.enquete.servlet;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.puc.enquete.ejb.OpcaoBeanLocal;
import org.puc.enquete.entity.Opcao;
import java.util.List;
import javax.jms.Session;
import javax.servlet.http.HttpSession;
import org.puc.enquete.ejb.EnqueteBeanLocal;
import org.puc.enquete.entity.Enquete;
import org.puc.enquete.excecoes.EnqueteNaoCadastradaException;

/**
 * Este servlet controla a página de votos
 * Implementação: Leonardo
 */
public class Votar extends HttpServlet {

    @EJB
    private OpcaoBeanLocal OpcaoBean;
    @EJB
    private EnqueteBeanLocal enqueteBean;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        Integer idEnquete = Integer.valueOf(request.getParameter("enquete"));
        Enquete enquete;
        try {

            //HttpSession s = (HttpSession) request.getSession();
            //s.

            enquete = enqueteBean.obterEnquete(idEnquete);
            if (!enquete.getAtiva()) {
                throw new Exception("Enquete não está ativa!");
            }
        } catch (Throwable e) {
            request.setAttribute("erro", e.getMessage());
            request.getRequestDispatcher("/ListarEnquetes").forward(request, response);
            return;
        }

        List<Opcao> lstOp = OpcaoBean.listarOpcoesPorEnquete(idEnquete);
        request.setAttribute("enquete", enquete);
        request.setAttribute("ListaOpcoes", lstOp);
        request.setAttribute("totalOpcoes", lstOp.size());
        
        //redireciona para página de voto
        request.getRequestDispatcher("/jsp/votar.jsp").forward(request, response);

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }

}
